package cn.javass.dp.observer.example2;

import java.util.ArrayList;
import java.util.List;

public class Subject {
    /**
     * 用来保存注册的观察者对象
     */
    private List<Observer> observers = new ArrayList<>();

    /**
     * 注册观察者对象
     * @param observer
     */
    public void  attach(Observer observer) {
        observers.add(observer);
    }

    public void detach(Observer observer) {
        observers.remove(observer);
    }

    /**
     * 通知所有注册的观察则
     */
    protected void notifyObserver() {
        for (Observer observer: observers) {
            observer.update(this);
        }
    }
}
